package com.dingreading.cloud.mall.dto;

import com.dingreading.cloud.mall.entity.GoodsImg;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.RelationOneToOne;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
public class GoodsDto implements Serializable {

    private Long id;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date addTime;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date editTime;

    /**
     * 商品名
     */
    private String name;

    /**
     * 商品简介
     */
    private String intro;

    /**
     * 商品详情
     */
    private String details;

    /**
     * 封面图
     */
    private String img;

    /**
     * 最低购买数
     */
    private Integer minBuyNum;

    /**
     * 商品原价
     */
    private Double price;

    /**
     * 商品排序
     */
    private Integer orderNum;

    /**
     * 商品种类id
     */
    private Long categoryId;

    /**
     * 商品种类id
     */
    private String categoryIds;

    /**
     * 商品种类名，多个用逗号分隔
     */
    private String categoryNames;

    /**
     * 是否实体货物
     * 0.不是 1.是
     */
    private Integer realStatus;

    /**
     * 是否爆款
     * 0.不是 1.是
     */
    private Integer hotStatus;

    /**
     * 能否使用代金券
     * 0.否 1.能
     */
    private Integer couponStatus;

    /**
     * 起购数量
     */
    private Integer minBuyCnt;

    /**
     * 采购倍数
     */
    private Integer buyTimes;

    /**
     * 商品状态 1.启用 0.禁用
     */
    private Integer enabled;

    /**
     * 合作类型 1.直营 2.托管运营 3.整店加盟 4.方案输出
     */
    private String cooperationType;

    /**
     * 创建人uid
     */
    private String addStaffUid;

    /**
     * 创建人姓名
     */
    private String addStaffName;

    /**
     * 更新人uid
     */
    private String lastStaffUid;

    /**
     * 更新人姓名
     */
    private String lastStaffName;

    /**
     * 付款方式 1.不限 2.银行转账
     */
    private Integer paymentMethod;

    /**
     * 出库方式 1.自营仓库 2.线上发货 3.第三方仓库
     */
    private Integer stockOutMethod;

    /**
     * 包邮模板id
     */
    private Long freeDeliveryId;

    /**
     * 包邮模板名称
     */
    @RelationOneToOne(
            selfField = "freeDeliveryId",
            targetTable = "free_delivery",
            targetField = "id",
            valueField = "name"
    )
    private String freeDeliveryName;

    private List<GoodsImg> imgList;

    private List<Integer> cooperationTypes;

    private List<?> typeList;
}
